import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class demo02 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int m=sc.nextInt();
        int[] arr=new int[m+1];
        for (int i = 0; i < m+1; i++) {
            arr[i]=Integer.MAX_VALUE;
        }
        arr[n]=0;
        for (int i = n; i < m; i++) {
            if(arr[i]==Integer.MAX_VALUE){
                continue;
            }
            List<Integer> list=func(i);
            for (int j:list) {
                if(i+j<=m&&arr[i+j]!=Integer.MAX_VALUE){
                    arr[i+j]=Math.min(arr[i+j],arr[i]+1);
                }else if(i+j<=m){
                    arr[i+j]=arr[i]+1;
                }
            }
        }
        if(arr[m]==Integer.MAX_VALUE){
            System.out.println(-1);
        }else{
            System.out.println(arr[m]);
        }
    }
    public static List<Integer> func(int n){
        List<Integer> arr=new ArrayList<>();
        for (int i = 2; i*i <= n; i++) {
            if(n%i==0){
                arr.add(i);
                if(n/i!=i){
                    arr.add(n/i);
                }
            }
        }
        return arr;
    }
}
